Discovering availability of digital media from multiple sources

ABSTRACT

Disclosed are various embodiments for discovering availability of digital media titles from multiple digital media service providers. A user account can indicate a relationship with one or more of the digital media service providers. For selected digital media service providers, availability of the digital media title for viewing by the user account can be determined. Relationship information for the user account can be retrieved to determine if a specified digital media title is available for viewing from a digital media service provider. The information about accessibility of the specified digital media title can be prepared and sent to a client device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. Ser. No. 13/292,138, filed onNov. 9, 2011 and entitled “DISCOVERING AVAILABILITY OF DIGITAL MEDIAFROM MULTIPLE SOURCES,” which is incorporated herein in its entirety.

BACKGROUND

Users can purchase, access, view, and otherwise consume digital mediacontent without waiting for a physical good to be delivered, sincedigital media is instead transferred in digital form. Users may have avariety of options for purchasing or renting digital media content, froma variety of digital media service providers.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure can be better understood withreference to the following drawings. The components in the drawings arenot necessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a drawing of a networked environment according to oneembodiment of the present disclosure.

FIG. 2 is an example user interface that can be generated by thecomputing device in the networked environment of FIG. 1 according tovarious embodiments of the present disclosure.

FIG. 3 is an example of another user interface that can be generated bythe computing device in the networked environment of FIG. 1 according tovarious embodiments of the present disclosure.

FIG. 4 is a flowchart illustrating an example of functionalityimplemented as portions of a media availability consolidator applicationexecuted in a computing device in the networked environment of FIG. 1according to various embodiments of the present disclosure.

FIG. 5 is a schematic block diagram that provides one exampleillustration of a computing device employed in the networked environmentof FIG. 1 according to various embodiments of the present disclosure.

DETAILED DESCRIPTION

The various embodiments described herein relate to accessing mediacontent that is available, in digital form, from digital media serviceproviders. Various embodiments disclosed herein first obtain informationabout which digital media service providers a particular user has arelationship with, and about the features associated with thatrelationship. This user-provider information is used to discover whethera digital media title of interest to the user is available from one ormore of this selected set of digital media service providers. The useris then presented with a consolidated view of the availability of thetitle from these digital media service providers. The view may alsoprovide details about the user's access to the title, taking intoaccount the features associated with the relationship. For example, theconsolidated view may include a price and a media format for each of thesubset of digital media service providers through which the title ofinterest is available. By providing a single view that includes thisentire subset of digital media service providers, various embodimentsdisclosed herein improve the user experience when shopping for digitalmedia. In the following discussion, a general description of the systemand its components is provided, followed by a discussion of theoperation of the same.

With reference to FIG. 1, shown is a networked environment 100 accordingto various embodiments. The networked environment 100 includes one ormore computing devices 103 in data communication with one or more clientdevices 106 by way of a network 109. The computing device 103 is also indata communication with computing devices 112 by way of the network 109.The network 109 includes, for example, the Internet, intranets,extranets, wide area networks (WANs), local area networks (LANs), wirednetworks, wireless networks, or other suitable networks, or anycombination of two or more such networks.

A computing device 103 may comprise, for example, a server computer orany other system providing computing capability. Alternatively, aplurality of computing devices 103 may be employed that are arranged,for example, in one or more server banks or computer banks or otherarrangements. A plurality of computing devices 103 together maycomprise, for example, a cloud computing resource, a grid computingresource, and/or any other distributed computing arrangement. Suchcomputing devices 103 may be located in a single installation or may bedistributed among many different geographical locations. For purposes ofconvenience, the computing device 103 is referred to herein in thesingular. Even though the computing device 103 is referred to in thesingular, it is understood that a plurality of computing devices 103 maybe employed in various arrangements.

A computing device 112 may comprise, for example, a server computer orany other system providing computing capability. Alternatively, aplurality of computing devices 112 may be employed that are arranged,for example, in one or more server banks or computer banks or otherarrangements. A plurality of computing devices 112 together maycomprise, for example, a cloud computing resource, a grid computingresource, and/or any other distributed computing arrangement. Suchcomputing devices 112 may be located in a single installation or may bedistributed among many different geographical locations. For purposes ofconvenience, the computing device 112 is referred to herein in thesingular. Even though the computing device 112 is referred to in thesingular, it is understood that a plurality of computing devices 112 maybe employed in various arrangements.

Various applications and/or other functionality may be executed in acomputing device 112 according to various embodiments. The componentsexecuted on the computing device 112 include, for example, a digitalmedia service 115 and a digital media content server 118. The componentsexecuted on the computing device 112 may also include otherapplications, services, processes, systems, engines, or functionalitynot discussed in detail herein. These components may communicate witheach other using various mechanisms, including but not limited to anytype of middleware framework. Although the digital media service 115 isshown as logically separate from the digital media content server 118 inthe example embodiment of FIG. 1, in other embodiments these componentsmay be integrated, as should be appreciated.

Also, various data is stored in a data store 121 that is accessible tothe computing device 112. The data store 121 may be representative of aplurality of data stores as can be appreciated. The data stored in thedata store 139, for example, is associated with the operation of thevarious applications and/or functional entities of the computing device112 as described herein. The data stored in the data store 121 includes,for example, digital media titles 124, account data 127, and potentiallyother data.

The digital media services 115 are operated by various digital mediaservice providers. Each digital media service 115 provides a servicewhich allows users to view digital media titles 124 stored in data store121. The digital media titles 124 may include, for example, music,video, audio, podcasts, software, electronic games, or any other type ofdigital content. A digital media service provider uses a digital mediaservice 115 operating on a computing device 112 to implement theservice. As used below, the term “provider” refers to the entity and theterm “service” refers to the implementing software.

Each digital media service 115 may provide an electronic marketplace orstorefront through which users browse, search for, and/or select digitalmedia titles 124 for contemporaneous or future consumption. At leastsome of these users have an ongoing relationship with a digital mediaservice 115 and the digital media service 115 may store informationdescribing the relationship between a particular user and the service asaccount data 127 in the data store 121. The account data 127 describesthe terms and conditions of the user's relationship, for example, thetype of access granted to the user, the number of titles which a usermay access in a given time period, etc. Once a user has selected aparticular digital media title 124 through interaction with the digitalmedia service 115, the digital media content server 118 executes tosupply the digital media title 124 to a client device 106 in datacommunication with the digital media content server 118 through thenetwork 109.

Various applications and/or other functionality may be executed in thecomputing device 103 according to various embodiments. The componentsexecuted on the computing device 103 include, for example, a mediaavailability consolidator application 130, a media catalog application133, and a network page generation application 136. The componentsexecuted on the computing device 103 may also include otherapplications, services, processes, systems, engines, or functionalitynot discussed in detail herein. These components may communicate witheach other using various mechanisms, including but not limited to anytype of middleware framework. Although the media availabilityconsolidator application 130, the media catalog application 133, and thenetwork page generation application 136 are shown as separate componentsin the example embodiment of FIG. 1, in other embodiments thesecomponents may be integrated, as should be appreciated.

Also, various data is stored in a data store 139 that is accessible tothe computing device 103. The data store 139 may be representative of aplurality of data stores as can be appreciated. The data stored in thedata store 139, for example, is associated with the operation of thevarious applications and/or functional entities of the computing device103 as described herein. The data stored in the data store 139 includes,for example, an electronic media catalog 142, user profiles 145, serviceprovider relationship data 148, and potentially other data.

The media availability consolidator application 130 is executed todiscover whether a specific digital media title 124 is available frommultiple digital media service providers, and to present a consolidatedview of this availability information to a user upon request. To thisend, the media availability consolidator application 130 can generateone or more user interfaces through which a user can view theavailability information. The availability information is customized forthe user in that it takes into account which digital media serviceproviders the user has a relationship with, the type of relationship,and the features associated with the relationship (e.g., featuresassociated with a “premium” membership as compared to a “basic”membership). This information about the relationship between aparticular user and a particular digital media service provider isstored as service provider relationship data 148, as part of a userprofile 145, in the data store 139. Other user-specific information mayalso be stored in a user profile 145. For example, the user profile 145may store information about which media formats are acceptable orpreferable to the user, information about transmission speeds which areacceptable or preferable to the user, and information about one or moremedia player devices through which a user consumes digital media titles124.

The media catalog application 133 is executed in order to facilitate theonline viewing of the electronic media catalog 142 over the network 109.For example, the media catalog application 133 may provide content whichallows the user to locate digital media titles 124 by navigating orbrowsing through the hierarchy of the electronic media catalog 142, andmay also provide content in response to user queries about digital mediatitles 124 in the electronic media catalog 142. The electronic mediacatalog 142 includes at least a subset of electronic media catalog 142which are available for consumption from the various digital mediaservice providers.

The network page generation application 136 is executed to fetch networkpages in response to requests from a client device 106. In someembodiments, the network page generation application 136 is a web serverwhich is executed to fetch web pages generated by the media availabilityconsolidator application 130 or the media catalog application 133. Thenetwork pages fetched by the network page generation application 136 maybe dynamically generated or may be static. The network page generationapplication 136 uses various forms of network page data, which mayinclude any type of data related to the generation of network pages.Such data may include, for example, templates, executable code,interpreted code, hypertext markup language (HTML), extensible markuplanguage (XML), images, video, text, graphics, and any other type ofdata that may be used in network pages. The network page generationapplication 136 may include a network page server and/or othercomponents. The network page server may comprise a commerciallyavailable hypertext transfer protocol (HTTP) server such as, forexample, Apache® HTTP Server, Microsoft® Internet Information Services(IIS), and other servers.

Having discussed the computing device 103 and the computing device 112,the client device 106 will now be considered. The client device 106 isrepresentative of a plurality of client devices that may be coupled tothe network 109. The client device 106 may comprise, for example, aprocessor-based system such as a computer system. Such a computer systemmay be embodied in the form of a desktop computer, a laptop computer, apersonal digital assistant, a cellular telephone, a smartphone, aset-top box, a television, a music player, a video player, a mediaplayer, a web pad, a tablet computer system, a game console, anelectronic book reader, or other devices with like capability. Theclient device 106 may be configured to execute various applications suchas a browser 151. The browser 151 may be executed in the client device106, for example, to access and render network pages, such as web pages,or other network content served up by the computing device 103 and/orother servers, thereby generating a rendered content page on a displayof the client device 106. The client device 106 may be configured toexecute applications beyond the browser 151 such as, for example, emailapplications, messaging applications, and/or other applications.

Next, a general description of the operation of the various componentsof the networked environment 100 is provided. To begin, a userestablishes a relationship with multiple digital media service providersby, for example, becoming a subscriber and creating an account withseveral of the digital media service providers. The term “subscription”is not limited to a paid model: a user may be charged a fee for thesubscription, or the subscription may be at no cost. Having establishedrelationships with various digital media service providers, the userinteracts with an application on a client device 106, for example, abrowser 151, to discover which digital media service providers cansupply a particular digital media title 124 for viewing, as follows.

As noted above, the user may use the browser 151 to interact with themedia catalog application 133 to navigate through digital media titles124 or to search for a particular digital media title 124. Once the userhas identified a specific digital media title 124 through navigation orsearch, the media availability consolidator application 130 identifiesthose digital media service providers with which the user has arelationship. The media availability consolidator application 130 thendetermines whether the digital media title 124 is available for viewingfrom each provider of the user-specific subset of digital media serviceproviders. Some or all of the availability information collected by themedia availability consolidator application 130 is then provided througha user interface which presents the user with a consolidated view of thetitle's availability from different digital media service providers. Theuser interface may be generated, for example, by the media availabilityconsolidator application 130.

The availability information presented to the user takes into accountinformation about the user's relationship with each of these digitalmedia service providers. Thus, for example, if a given digital mediatitle 124 is available only to “premium” subscribers of the Zulu servicebut the user has a subscription to the “basic” service, then the mediaavailability consolidator application 130 may indicate that the digitalmedia title 124 is unavailable from Zulu. Alternatively, in the samescenario the media availability consolidator application 130 mayindicate that the digital media title 124 is not available with theuser's current “basic” service, but is available if the user upgrades to“premium.”

In some embodiments, the media availability consolidator application 130also provides availability information for digital media serviceproviders with which the user does not have a preexisting relationship.For example, if a given digital media title 124 is available from Zuluand from Flicks but the user subscribes only to Flix, the mediaavailability consolidator application 130 provides availabilityinformation for Zulu as well as Flicks. In some of these embodiments,the media availability consolidator application 130 further presents tothe user information about how to establish a relationship with adigital media service provider with which the user does not have anexisting relationship. For example, the media availability consolidatorapplication 130 may present a hyperlink to a network page on a networksite operated by the digital media service provider. Continuing with theexample above, a user without an existing relationship with Zulu may begiven information about the Zulu subscription, information about how tobecome a Zulu subscriber, and/or an opportunity to become a Zulusubscriber, for example through a link to the digital media service 115for Zulu.

Reference is now made to FIG. 2, which illustrates an exampleconfiguration user interface 200 that can be generated by the mediaavailability consolidator application 130 according to variousembodiments of the disclosure. The configuration user interface 200 isrendered on a client device 106 (FIG. 1) in the networked environment100 (FIG. 1) according to various embodiments of the disclosure. In someembodiments, the configuration user interface 200 takes the form of anetwork page which is rendered by a browser 151 executing in the clientdevice 106, but other types of user interfaces may be used as can beappreciated.

The configuration user interface 200 allows the user to provideuser-specific information for use by the media availability consolidatorapplication 130. More specifically, the configuration user interface 200allows the user to specify the digital media service providers withwhich he has a relationship, as well as the type of account orrelationship for each provider. The configuration user interface 200also allows the user to describe the media player device(s) which willbe used to consume the digital media titles 124 and to describe otheraspects of the user's configuration such as the type of networkconnection. The information provided through the configuration userinterface 200 to the media availability consolidator application 130 isstored as a user profile 145 in the data store 139.

As can be seen in FIG. 2, the configuration user interface 200 includesa set of controls 203 that relate to the user's digital media serviceproviders. In this example, the controls 203 are implemented with comboboxes 203A-C, allowing the user to choose one or more of the followingdigital media service providers: Zulu, Amazon, and Flicks. Morespecifically, the user can choose between “Zulu Basic” and “ZuluPremium,” between “Amazon” and “Amazon Prime,” and between “Flix Free”and “Flix Gold.” The configuration user interface 200 also includes aset of controls 206 that relate to the user's media player devices. Inthis example, the controls 206 are implemented with check boxes 206A-D,allowing the user to choose one or more of “iPad,” “iPod,” the set topbox “Slingblade,” and the television “TVConnect.” Finally, theconfiguration user interface 200 includes a set of controls 209 thatdescribe the network connection between the client device 106 and thenetwork 109. In this example, the controls 209A-C allow the user tochoose between “DSL,” “Cable,” and “WiFi.”

The user interface 200 may also allow the user to provide authenticationcredentials associated with each of the selected digital media serviceproviders. The media availability consolidator application 130 may thenuse the authentication credentials to log in to the correspondingdigital media service provider in order to obtain availabilityinformation from that provider. In some embodiments, this log in may beperformed automatically during the process of obtaining availabilityinformation. In some embodiments, this log in may be performedautomatically during the process of providing the user with access tothe digital media title of interest.

In some embodiments, the user has control over the automatic log inprocess on a per-provider basis, by specifying which providers areautomatically logged into and which are not. This level of control maybe desirable, for example, to a user who is not comfortable sharingauthentication credentials with the media availability consolidatorapplication 130.

In some scenarios, an attempt by the media availability consolidatorapplication 130 to log in to a particular digital media service provideron behalf of the user may fail. In some embodiments, when the log infails, then the media availability consolidator application 130 requeststhat the user provide the availability consolidator application 130 withupdated authentication information.

The media availability consolidator application 130 queries theconfiguration user interface 200 to determine the settings chosen by theuser. The information may be processed, analyzed, or converted beforestorage in a user profile 145 that is specific to the user. The mediaavailability consolidator application 130 may use various mechanisms todetermine the identity of the particular user associated with theconfiguration, for example, through a user login process, throughpersistent state information, or other mechanisms as may be appreciated.

Moving on to FIG. 3, shown is an example media title availability userinterface 300 that can be generated by the media availabilityconsolidator application 130 according to various embodiments of thedisclosure. The media title availability user interface 300 is renderedon a client device 106 (FIG. 1) in the networked environment 100(FIG. 1) according to various embodiments of the disclosure. In someembodiments, the media title availability user interface 300 takes theform of a network page which is rendered by a browser 151 executing inthe client device 106, but other types of user interfaces may be used ascan be appreciated.

As can be seen in FIG. 3, the media title availability user interface300 includes a matrix 303 which displays the availability of a givendigital media title 124 from various digital media service providers.Each column 306 represents a different digital media service providerwith which the user has a relationship, while each row 309 represents adifferent media format. In this example, the media formats correspond toscreen resolution, but other user interfaces 300 may represent mediaformat in a different way, for example, file format, transfer rate, etc.In the example shown in FIG. 3, the matrix 303 shows that the digitalmedia title 124 (“Casablanca”) is available for viewing by the user fromtwo different digital media service providers. The title is availablefrom Amazon Prime in two resolutions: 720 vertical bits progressive (720pi), at no cost; and 1420 vertical bits progressive (1420 pi) at a costof $3.00. The digital media title 124 is also available from Zulu Basicin one resolution: 1420 vertical bits progressive (1420 pi) at a cost of$5.00.

In some embodiments, the user can click on a cell of the matrix 303 inorder to consume the digital media title 124 from the correspondingdigital media service provider. The media availability consolidatorapplication 130 then interacts with the digital media service 115 inorder to facilitate the consumption transaction. If the access type forthe selected cell is streaming, the user may begin viewing the digitalmedia title 124 substantially immediately. If the access type is insteaddownload, the download may start substantially immediately, but the usermay be required to defer viewing until the download is partially orcompletely finished. In some embodiments, clicking on a cell to requestconsumption takes the user to another network page, hosted by a systemoperated by the digital media service provider, such as the digitalmedia service 115. At that network page, the user may be requested toenter account and/or payment information. In other embodiments, theaccount and/or payment information is provided to the digital mediaservice 115 in a transparent manner by the media availabilityconsolidator application 130.

Turning now to FIG. 4, shown is a flowchart that provides one example ofthe operation of portion(s) of the media availability consolidatorapplication 130 according to various embodiments. It is understood thatthe flowchart of FIG. 4 provides merely an example of the many differenttypes of functional arrangements that may be employed to implement theoperation of portion(s) of the media availability consolidatorapplication 130 as described herein. As an alternative, the flowchart ofFIG. 4 may be viewed as depicting an example of steps of a methodimplemented in the computing device 103 (FIG. 1) according to one ormore embodiments.

Beginning at box 403, the media availability consolidator application130 receives a user request for the availability of a particular digitalmedia title 124 from multiple digital media service providers. Theavailability is specific to the user. That is, the request is not ageneral request as to whether or not the digital media title 124 isavailable for viewing from various digital media service providers, butinstead takes into account the user's preexisting association with thosedigital media service providers. Therefore, at box 406, the mediaavailability consolidator application 130 retrieves a list of digitalmedia service providers with which the user has a preexistingrelationship. This relationship may be, for example, a customerrelationship, a subscriber relationship, or other types of preexistingrelationships. The media availability consolidator application 130 mayalso retrieve other information that describes the level of, or typesof, viewing access that the user has with each of these digital mediaservice providers. For example, a service provider may offer a “basic”service that allows five downloads per month and a “premium” servicethat allows ten downloads per month. As another example, a serviceprovider may offer a “slow” service that supports relatively lowdownload speeds and a “fast” service that supports relatively highdownload speeds.

Having obtained information about which digital media service providersthe user has a relationship with, and possibly additional informationabout viewing/access features associated with the user-providerrelationship, at box 409, the media availability consolidatorapplication 130 obtains information describing availability of thedigital media title 124 from these digital media service providers. Insome embodiments, the media availability consolidator application 130obtains the availability information through a web service, applicationprogram interface (API), or other programmatic interface supported by adigital media service provider. In other embodiments, the mediaavailability consolidator application 130 obtains the availabilityinformation by visiting a network site operated by the digital mediaservice provider, retrieving network page(s), and analyzing the pagecontent to determine availability of the specific digital media title124.

The availability information may include, for example: a fee charged foruser access to the digital media title 124; the type of access (e.g.,download, streaming, real-time streaming, etc.); the file format, streamformat, and/or encoding format; the transfer bit rate; screenresolution; and other types of information describing the user's abilityto view or access the digital media title 124 from a particular digitalmedia service provider. The availability information obtained from agiven digital media service provider may include multiple availabilityinstances. For example, a particular digital media service provider mayoffer two options for viewing the digital media title 124 (e.g., ahigh-resolution option and a low resolution option). In such a case, theinformation obtained at box 409 would describe both options.

In some embodiments, when the media availability consolidatorapplication 130 requests availability information for a particulardigital media service provider, the media availability consolidatorapplication 130 identifies the user and/or the type of user-providerrelationship so that digital media service provider can take intoaccount the specific relationship when providing title availabilityinformation. For example, if the user has a “premium” relationship, thedigital media service provider may provide only information about theavailability of the title to “premium” users.

However, some digital media service provider may not provide this levelof detail or specificity with regard to title availability. Therefore,in some embodiments, the availability information provided by a digitalmedia service provider is not specific to a user or class of users, butinstead represents the availability of the title generally. In suchcases, the media availability consolidator application 130 may furtherprocess the availability information obtained at box 409 from one ormore of the digital media service providers in order to determine theavailability of the digital media title 124 to the specific user. Forexample, the media availability consolidator application 130 maydiscover through the user profile that the user has a “premium”relationship with the digital media service provider and may thereforediscard or ignore any information provided by the digital media serviceprovider for availability to other types of users.

Next, at box 412, the media availability consolidator application 130provides to the user some or all of the information describingavailability of the digital media title 124 from the digital mediaservice providers. The availability information may be provided, forexample, in the form of a network page for rendering by a browser 151executing on the client device 106. In some embodiments, availabilityinformation from all of the digital media service providers with whichthe user has a relationship is presented. Various examples ofavailability information were described above, and the presentation tothe user may be made through a user interface such as media titleavailability user interface 300 (FIG. 3). Having provided theavailability information to the user, the process of FIG. 4 is thencomplete.

With reference now to FIG. 5, shown is a schematic block diagram of theclient device 106 according to an embodiment of the present disclosure.The computing device 103 includes at least one processor circuit, forexample, having a processor 503 and a memory 506, both of which arecoupled to a local interface 509. To this end, the computing device 103may comprise, for example, at least one server computer or like device.The local interface 509 may comprise, for example, a data bus with anaccompanying address/control bus or other bus structure as can beappreciated.

Stored in the memory 506 are both data and several components that areexecutable by the processor 503. In particular, stored in the memory 506and executable by the processor 503 are the media availabilityconsolidator application 130, the media catalog application 133, and thenetwork page generation application 136. In addition, an operatingsystem may be stored in the processor 503 and executable by theprocessor 503. While not illustrated, the computing device 112 (FIG. 1)also includes components like those shown in FIG. 5, whereby the digitalmedia service 115 (FIG. 1) and the digital media content server 118(FIG. 1) are stored in a memory and executable by a processor.Similarly, the client device 106 (FIG. 1) also includes components likethose shown in FIG. 5, whereby the browser 151 (FIG. 1) is stored in amemory and executable by a processor.

It is understood that there may be other applications that are stored inthe memory 506 and are executable by the processor 503 as can beappreciated. Where any component discussed herein is implemented in theform of software, any one of a number of programming languages may beemployed such as, for example, C, C++, C#, Objective C, Java,JavaScript, Perl, PHP, Visual Basic, Python, Ruby, Delphi, Flash, orother programming languages.

A number of software components are stored in the memory 506 and areexecutable by the processor 503. In this respect, the term “executable”means a program file that is in a form that can ultimately be run by theprocessor 503. Examples of executable programs may be, for example, acompiled program that can be translated into machine code in a formatthat can be loaded into a random access portion of the memory 506 andexecuted by the processor 503, source code that may be expressed inproper format such as object code that is capable of being loaded into arandom access portion of the memory 506 and executed by the processor503, or source code that may be interpreted by another executableprogram to generate instructions in a random access portion of thememory 506 and executed by the processor 503, etc. An executable programmay be stored in any portion or component of the memory 506 including,for example, random access memory (RAM), read-only memory (ROM), harddrive, solid-state drive, USB flash drive, memory card, optical discsuch as compact disc (CD) or digital versatile disc (DVD), floppy disk,magnetic tape, or other memory components.

The memory 506 is defined herein as including both volatile andnonvolatile memory and data storage components. Volatile components arethose that do not retain data values upon loss of power. Nonvolatilecomponents are those that retain data upon a loss of power. Thus, thememory 506 may comprise, for example, random access memory (RAM),read-only memory (ROM), hard disk drives, solid-state drives, USB flashdrives, memory cards accessed via a memory card reader, floppy disksaccessed via an associated floppy disk drive, optical discs accessed viaan optical disc drive, magnetic tapes accessed via an appropriate tapedrive, and/or other memory components, or a combination of any two ormore of these memory components. In addition, the RAM may comprise, forexample, static random access memory (SRAM), dynamic random accessmemory (DRAM), or magnetic random access memory (MRAM) and other suchdevices. The ROM may comprise, for example, a programmable read-onlymemory (PROM), an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM), or otherlike memory device.

Also, the processor 503 may represent multiple processors and the memory506 may represent multiple memories that operate in parallel processingcircuits, respectively. In such a case, the local interface 509 may bean appropriate network 109 (FIG. 1) that facilitates communicationbetween any two of the multiple processors 503, between any of theprocessors 503 and any of the memories 506, or between any two of thememories 506, etc. The local interface 509 may comprise additionalsystems designed to coordinate this communication, including, forexample, performing load balancing. The processor 503 may be ofelectrical or of some other available construction.

Although the media availability consolidator application 130, the mediacatalog application 133, and the network page generation application 136and other various systems described herein may be embodied in softwareor code executed by general purpose hardware as discussed above, as analternative the same may also be embodied in dedicated hardware or acombination of software/general purpose hardware and dedicated hardware.If embodied in dedicated hardware, each can be implemented as a circuitor state machine that employs any one of or a combination of a number oftechnologies. These technologies may include, but are not limited to,discrete logic circuits having logic gates for implementing variouslogic functions upon an application of one or more data signals,application specific integrated circuits having appropriate logic gates,or other components, etc. Such technologies are generally well known bythose skilled in the art and, consequently, are not described in detailherein.

The flowchart of FIG. 4 shows the functionality and operation of animplementation of portions of the media availability consolidatorapplication 130. If embodied in software, each block may represent amodule, segment, or portion of code that comprises program instructionsto implement the specified logical function(s). The program instructionsmay be embodied in the form of source code that comprises human-readablestatements written in a programming language or machine code thatcomprises numerical instructions recognizable by a suitable executionsystem such as one of the processors 503 in a computer system or othersystem. The machine code may be converted from the source code, etc. Ifembodied in hardware, each block may represent a circuit or a number ofinterconnected circuits to implement the specified logical function(s).

Although the flowchart of FIG. 4 shows a specific order of execution, itis understood that the order of execution may differ from that which isdepicted. For example, the order of execution of two or more blocks maybe scrambled relative to the order shown. Also, two or more blocks shownin succession in the flowchart of FIG. 4 may be executed concurrently orwith partial concurrence. Further, in some embodiments, one or more ofthe blocks shown in the flowchart of FIG. 4 may be skipped or omitted.In addition, any number of counters, state variables, warningsemaphores, or messages might be added to the logical flow describedherein, for purposes of enhanced utility, accounting, performancemeasurement, or providing troubleshooting aids, etc. It is understoodthat all such variations are within the scope of the present disclosure.

Also, any logic or application described herein (including the mediaavailability consolidator application 130, the media catalog application133, and the network page generation application 136) that comprisessoftware or code can be embodied in any non-transitory computer-readablemedium for use by or in connection with an instruction execution systemsuch as, for example, the processor 503 in a computer system or othersystem. In this sense, the logic may comprise, for example, statementsincluding instructions and declarations that can be fetched from thecomputer-readable medium and executed by the instruction executionsystem. In the context of the present disclosure, a “computer-readablemedium” can be any medium that can contain, store, or maintain the logicor application described herein for use by or in connection with theinstruction execution system. The computer-readable medium can compriseany one of many physical media such as, for example, magnetic, optical,or semiconductor media. More specific examples of a suitablecomputer-readable medium would include, but are not limited to, magnetictapes, magnetic floppy diskettes, magnetic hard drives, memory cards,solid-state drives, USB flash drives, or optical discs. Also, thecomputer-readable medium may be a random access memory (RAM) including,for example, static random access memory (SRAM) and dynamic randomaccess memory (DRAM), or magnetic random access memory (MRAM). Inaddition, the computer-readable medium may be a read-only memory (ROM),a programmable read-only memory (PROM), an erasable programmableread-only memory (EPROM), an electrically erasable programmableread-only memory (EEPROM), or other type of memory device.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations setforth for a clear understanding of the principles of the disclosure.Many variations and modifications may be made to the above-describedembodiment(s) without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

Therefore, the following is claimed:
 1. A computer-implemented methodcomprising: receiving, via at least one computing device, a request froma client device for availability of a specified digital media title;selecting, via the at least one computing device, a plurality of digitalmedia service providers with which a user account indicates arelationship exists; obtaining, via the at least one computing device,information describing availability of the specified digital media titlefrom at least two of the selected plurality of digital media serviceproviders; retrieving, via the at least one computing device,relationship information specific to the user account associated withthe client device and to at least two of the selected plurality ofdigital media service providers; determining, via the at least onecomputing device, whether the specified digital media title isaccessible by the client device from the at least two of the selectedplurality of digital media service providers based at least in part onthe information describing availability and on the relationshipinformation; preparing, via the at least one computing device,information about accessibility of the specified digital media title bythe client device from at least a subset of the selected plurality ofdigital media service providers; and sending, via the at least onecomputing device, the information about access to the client device. 2.The computer-implemented method of claim 1, wherein the subset of theselected plurality of digital media service providers comprises at leasttwo digital media service providers.
 3. The computer-implemented methodof claim 1, further comprising: obtaining second information describingavailability of the specified digital media title from another digitalmedia service provider with which the user account does not indicate acustomer relationship exists; and determine whether the specifieddigital media title is also accessible by the client device from theanother digital media service provider based at least in part on thesecond information describing availability.
 4. The computer-implementedmethod of claim 1, further comprising selecting, via the at least onecomputing device, at least one additional digital media service providerwith which the user account does not indicate a relationship exists; andobtaining, via the at least one computing device, information describingavailability of the specified digital media title from the at least oneadditional digital media service provider.
 5. The computer-implementedmethod of claim 1, further comprising receiving an authenticationcredential that identifies the relationship identified in the useraccount with one of the plurality of digital media service providers,wherein determining whether the specified digital media title isaccessible by the client device comprises authenticating with the one ofthe plurality of digital media service providers using theauthentication credential.
 6. The computer-implemented method of claim1, wherein the information describing the availability of the specifieddigital media title is based at least in part on a type of relationshipthe user account indicates with the at least two of the selectedplurality of digital media service providers.
 7. Thecomputer-implemented method of claim 1, wherein the informationdescribing the availability of the specified digital media title isbased at least in part on a type of relationship with the at least twoof the selected plurality of digital media service providers.
 8. Thecomputer-implemented method of claim 1, wherein the relationshipinformation comprises a feature of one of the selected plurality ofdigital media service providers, and determining whether the specifieddigital media title is accessible by the client device is based at leastin part on the feature.
 9. A system comprising: a data store comprisingrelationship information specific to a user account for a plurality ofdigital media service providers; and at least one computing device incommunication with the data store, the at least one computing devicebeing configured to at least: receive a request from a client device foravailability of a specified digital media title; select a plurality ofselected digital media service providers based at least in part on therelationship information; obtain information describing availability ofthe specified digital media title from at least two of the selectedplurality of digital media service providers; determine whether thespecified digital media title is accessible by the client device fromthe at least two of the selected plurality of digital media serviceproviders based at least in part on the information describingavailability and on the relationship information; prepare informationabout accessibility of the specified digital media title by the clientdevice from at least a subset of the selected plurality of digital mediaservice providers; and send the information about accessibility to theclient device.
 10. The system of claim 9, wherein the at least onecomputing device is further configured to at least: receive therelationship information from the client device; and store therelationship information in the data store.
 11. The system of claim 9,wherein the information about accessibility of the specified digitalmedia title includes at least one of: a fee for the access to thespecified digital media title, a parameter specifying a media format ofthe digital media title, a parameter specifying a resolution of thedigital media title, or a parameter specifying a transfer bitrate of thedigital media title.
 12. The system of claim 9, wherein the at least onecomputing device is further configured to at least request an update toan authentication credential in response to a failure to authenticate anexisting authentication credential with one of the plurality of digitalmedia service providers.
 13. The system of claim 9, wherein the at leastone computing device is further configured to at least: generate aconfiguration user interface; receive information describing an existingrelationship with a first digital media service provider of theplurality of digital media service providers via the configuration userinterface; and store the information describing the existingrelationship in the data store associated with the user account.
 14. Thesystem of claim 13, wherein the configuration user interface isconfigured to receive an authentication credential that identifies theexisting relationship between the user account and the first digitalmedia service provider, and the at least one computing device is furtherconfigured to at least use the authentication credential to log in tothe first digital media service provider.
 15. A system comprising: atleast one computing device; and a media application that, when executedby the at least one computing device, causes the at least one computingdevice to at least: receive a request from a client device foravailability of a specified digital media title by the client device;select a plurality of digital media service providers with which theuser account indicates a relationship exists; obtain informationdescribing availability of the specified digital media title from atleast two of the selected plurality of digital media service providers;retrieve relationship information specific to the user account and to atleast two of the selected plurality of digital media service providers;determine that the specified digital media title is accessible by theclient device from the at least two of the selected plurality of digitalmedia service providers based at least in part on the informationdescribing availability and on the relationship information; prepareinformation about accessibility of the specified digital media titlefrom the at least two of the selected plurality of digital media serviceproviders; and send the information about access to the client device.16. The system of claim 15, wherein the at least one computing device isfurther configured to at least cause the information about access to berendered by the client device.
 17. The system of claim 15, whereinsending the information about access to the client device comprisessending data encoding a hyperlink to a network page.
 18. The system ofclaim 15, wherein the information about the accessibility of thespecified digital media title is limited to those of the selectedplurality of digital media service providers for which the specifieddigital media title is accessible.
 19. The system of claim 15, whereinthe at least one computing device is further configured to at least:obtain second information describing availability of the specifieddigital media title from another digital media service provider withwhich the user account does not indicate a customer relationship exists;and determine whether the specified digital media title is alsoaccessible from the another digital media service provider based atleast in part on the second information describing availability.
 20. Thesystem of claim 15, wherein the at least one computing device is furtherconfigured to at least: obtain at least part of the informationdescribing availability of the specified digital media title from anetwork site associated with at least one of the selected plurality ofdigital media service providers; and analyze the information todescribing availability to determine whether the specific digital mediatitle is accessible for consumption by the client device.